package org.jeecg.modules.cusorder.entity;

import java.io.Serializable;

import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 订单信息
 * @Date:   2021-09-10
 * @Version: V1.0
 */
@Data
@TableName("order_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="order_info对象", description="订单信息")
public class CusOrderInfo implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
	
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
	
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
    
	/**修改日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") //出参注解
    @DateTimeFormat(pattern="yyyy-MM-dd") //入参注解
    @ApiModelProperty(value = "修改日期")
    private java.util.Date updateTime;
	
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
    
	/**订单号标签*/
	@Excel(name = "订单号标签", width = 15)
    @ApiModelProperty(value = "订单号标签")
    private java.lang.String codeNumKey;
	
	/**下单人*/
    @ApiModelProperty(value = "下单人")
    @Excel(name = "下单人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private java.lang.String sellBy;
	
	/**订单号*/
	@Excel(name = "订单号", width = 15)
    @ApiModelProperty(value = "订单号")
    private java.lang.String codeNum;
	
	/**订单类型*/
	@Excel(name = "订单类型", width = 15, dicCode = "order_type")
	@Dict(dicCode = "order_type")
    @ApiModelProperty(value = "订单类型")
    private java.lang.Integer orderType;
	
	/**状态*/
	@Excel(name = "状态", width = 15, dicCode = "order_status")
	@Dict(dicCode = "order_status")
    @ApiModelProperty(value = "状态")
    private java.lang.Integer status;
	
	/**客户单号*/
	@Excel(name = "客户单号", width = 15)
    @ApiModelProperty(value = "客户单号")
    private java.lang.String cusCode;
	
	/**客户*/
	@Excel(name = "客户", width = 15, dictTable = "customer_info", dicText = "cus_code", dicCode = "id")
	@Dict(dictTable = "customer_info", dicText = "cus_code", dicCode = "id")
    @ApiModelProperty(value = "客户")
    private java.lang.String customerInfoId;
	
	/**默认成色*/
	@Excel(name = "默认成色", width = 15 , dictTable = "gold_karat", dicText = "gold_karat_name", dicCode = "id")
	@Dict(dictTable = "gold_karat", dicText = "gold_karat_name", dicCode = "id")
    @ApiModelProperty(value = "默认成色")
    private java.lang.String defaultGoldKarat;
	
	/**下单日期*/
	@Excel(name = "下单日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "下单日期")
    private java.util.Date orderTime;
	
	/**交货日期*/
	@Excel(name = "交货日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "交货日期")
    private java.util.Date deliveryDate;
	
	/**确认日期*/
	@Excel(name = "确认日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "确认日期")
    private java.util.Date confirmDate;
	
	
	/**下单数量*/
	@Excel(name = "下单数量", width = 15)
    @ApiModelProperty(value = "下单数量")
    private java.lang.Integer count;
	
	/**做货数量*/
	@Excel(name = "做货数量", width = 15)
    @ApiModelProperty(value = "做货数量")
    private java.lang.Integer doCount;
	
	/**已出货数量*/
	@Excel(name = "已出货数量", width = 15)
    @ApiModelProperty(value = "已出货数量")
    private java.lang.Integer shipmentCount;
	
	/**未出货数量*/
	@Excel(name = "未出货数量", width = 15)
    @ApiModelProperty(value = "未出货数量")
    private java.lang.Integer noShipmentCount;
	
	/**结算币种*/
	@Excel(name = "结算币种", width = 15)
    @ApiModelProperty(value = "结算币种")
    private java.lang.String currency;
	
	/**订单总价*/
	@Excel(name = "订单总价", width = 15)
    @ApiModelProperty(value = "订单总价")
    private java.math.BigDecimal money;
	
	/**折扣率*/
	@Excel(name = "折扣率", width = 15)
    @ApiModelProperty(value = "折扣率")
    private java.math.BigDecimal discountRate;
	
	/**折后总价*/
	@Excel(name = "折后总价", width = 15)
    @ApiModelProperty(value = "折后总价")
    private java.math.BigDecimal discount;
	
	/**附件*/
	@Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private java.lang.String attachment;
	
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
	
	/**生产要求*/
	@Excel(name = "生产要求", width = 15)
    @ApiModelProperty(value = "订单生产要求")
    private java.lang.String productionRequirement;
	
	/**包装要求*/
	@Excel(name = "包装要求", width = 15)
    @ApiModelProperty(value = "订单包装要求")
    private java.lang.String packRequirement;
	
	/**审单人*/
	@Excel(name = "审单人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @ApiModelProperty(value = "审单人")
    private java.lang.String examineBy;
	
	/**审单日期*/
	@Excel(name = "审单日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审单日期")
    private java.util.Date examineTime;
	
	/**审单意见*/
	@Excel(name = "审单意见", width = 15)
    @ApiModelProperty(value = "审单意见")
    private java.lang.String examineRemark;
	
	/**订单取消类型（1部分取消 2整单取消）*/
	@Excel(name = "订单取消类型", width = 15, dicCode = "order_cancel")
	@Dict(dicCode = "order_cancel")
    @ApiModelProperty(value = "订单取消类型")
    private java.lang.Integer orderCancel;
	
	/**是否急单：0否 1是*/
	@Excel(name = "是否急单", width = 15, dicCode = "yn")
	@Dict(dicCode = "yn")
    @ApiModelProperty(value = "是否急单")
    private java.lang.Integer isRushOrder;
	
	/**难度级别*/
	@Excel(name = "难度级别", width = 15, dicCode = "difficult_level")
	@Dict(dicCode = "difficult_level")
    @ApiModelProperty(value = "难度级别")
    private java.lang.Integer difficultLevel;
	
	@TableField(exist = false)
	private boolean hasSelStyle;//是否已经选款
}
